/* 
 * File:   LightStack.h
 * Author: Lucky
 *
 * Created on 28. září 2011, 12:59
 */

#ifndef LIGHTSTACK_H
#define	LIGHTSTACK_H

#include "Node.h"
#include "LightStack.h"
#include "Result.h"

class LightStack {
public:
    LightStack();
    LightStack(const LightStack& orig);
    virtual ~LightStack();

    void push(Node* n);
    Node* pop();
    int getLength() const;
    bool isEmpty() const;
    void printActiveCoordinates() const;
    Result* getResult() const;
private:

    class Element {
    public:
        Element* prev;
        Node* value;
        bool popped;
    };

    Element* m_top;
    int m_length;

};

#endif	/* LIGHTSTACK_H */

